algorithm types and modes